#pragma once

// Common header for HFLCAL, iHFLCAL, bHFLCAL

#include <tuple>

namespace solar
{
    class ScenePara;
    class SimulationPara;
    class HeliostatPara;
    class Sun;
    class Receiver;
    class Heliostat;

    namespace internal
    {
        // compute sigma_x, peak_flux_param
        auto computeHFLCALBasedSigma(SimulationPara* simulation_para, ScenePara* scene_para,
                                     HeliostatPara* heliostat_para, Sun* sun, Heliostat* heliostat, Receiver* receiver)
            -> std::tuple<double, double>;
    }
} // namespace solar
